package com.shop.service;

import com.shop.dto.InvoiceDTO;
import com.shop.model.Invocei;
import com.shop.model.Order;
import jakarta.servlet.http.HttpSession;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface OrderService {
    int addOrderInfo(Order order,Integer cartId);
    List<Order> getAllOrders();
    Order selectByOrderNo(String no);

    // 创建订单
    Order createOrder(Order order);

    // 根据订单编号查询订单
    Order getOrderByOrderNo(String orderNo);

    // 根据用户ID查询订单列表
    List<Order> getOrdersByUserId(Integer userId);

    // 更新订单状态
    boolean updateOrderStatus(String orderNo, String status, Date payTime);

    // 删除订单
    boolean deleteOrder(Integer id);
    Order selectById(Integer id);

    // 查询订单（扩展查询功能）
//    List<Order> searchOrders(String orderNo, Integer userId, String status);

    // 生成订单
    String submitOrder(Integer userId, Integer addressId, String telphone, String payType, HttpSession session);

    // 支付订单
    String payOrder(Integer userId, String orderId);

    String createAlipayPayment(String orderNo, Double totalPrice, String s);

    void orderSuccess(String outTradeNo, Integer userId);


    InvoiceDTO getInvoiceDTO(Integer orderId);

    Integer addInvoice(Map map);

    Invocei getInvoice(Integer id);

    Invocei getInvoiceByOrderId(int orderId);
}